<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-on="http://www.w3.org/1999/xhtml">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <p>{{ message }}</p>
</div>
<div id="app-2">
    ss
  <span v-bind:title="message">
    鼠标悬停几秒钟查看此处动态绑定的提示信息！
  </span>
</div>
<div id="app-3">
    <p v-if="seen">现在你看到我了</p>
</div>
<div id="app-4">
    <ol>
        <li v-for="todo in todos">
            {{ todo.text }}
        </li>
    </ol>
</div>

<div id="app-5">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">逆转消息</button>
</div>

<div id="app-7">
    <ol>
        <!--
          现在我们为每个 todo-item 提供 todo 对象
          todo 对象是变量，即其内容可以是动态的。
          我们也需要为每个组件提供一个“key”，稍后再
          作详细解释。
        -->
        <todo-item
                v-for="item in groceryList"
                v-bind:todo="item"
        >
        </todo-item>
    </ol>
</div>
<div id="app-8">
    <p>{{message}}</p>
    <button v-on:click="change">修改数据</button>
</div>

<div id="example">
    <p>Original message: "{{ message }}"</p>
    <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>

<div id="app-9">
    <p>old value:"{{message1}}"</p>
    <p>compute value:"{{computeMessage}}"</p>

</div>


</body>
<script>
    new Vue({
        el: '#app',
        data: {
            message: 'Hello Vue.js!'
        }
    })
    var app2 = new Vue({
        el: '#app-2',
        data: {
            message: '页面加载于 ' + new Date().toLocaleString()
        }
    })
    var vid = new Vue({
        el:'#app-3',
        data:{seen:true}
    })
    var app4 = new Vue({
        el: '#app-4',
        data: {
            todos: [
                { text: '学习 JavaScript' },
                { text: '学习 Vue' },
                { text: '整个牛项目' }
            ]
        }
    })
    var app5 = new Vue({
        el: '#app-5',
        data: {
            message: 'Hello Vue.js!'
        },
        methods: {
            reverseMessage: function () {
                this.message = this.message.split('').reverse().join('')
            },
            hehe:function () {
                this.message=this.message+"aaa";
            }
        }
    })
    Vue.component('todo-item', {
        props: ['todo'],
        template: '<li>{{ todo.text }}</li>'
    })

    var app7 = new Vue({
        el: '#app-7',
        data: {
            groceryList: [
                { id: 0, text: '蔬菜' },
                { id: 1, text: '奶酪' },
                { id: 2, text: '随便其它什么人吃的东西' }
            ]
        }
    })
    var data={message:'aa'}
    var app8 =new Vue({
        el:'#app-8',
        data:data,
        methods:{
            change:function () {
                this.message=this.message+"aaaa"
            }
        }
    })
    var app9 = new Vue({
        el: '#app-9',
        data:{message1 :'adsad'},
        computed:{
            computeMessage:function () {
                return this.message1.split('').reverse().join('')
            }
        }
    })
    var vm = new Vue({
        el: '#example',
        data: {
            message: 'Hello'
        },
        computed: {
            // 计算属性的 getter
            reversedMessage: function () {
                // `this` 指向 vm 实例
                return this.message.split('').reverse().join('')
            }
        }
    })
    // $watch 是一个实例方法，并没有
    app8.$watch('message', function (newValue, oldValue) {
        // 这个回调将在 `vm.a` 改变后调用
        alert(newValue);
    })


</script>
</html>